/*
题目：把二叉搜索树转换成累加树
给出二叉 搜索 树的根节点，该树的节点值各不相同，请你将其转换为累加树（Greater Sum Tree），
使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
https://leetcode.cn/problems/convert-bst-to-greater-tree/
 */
public class ConvertBST {
    int curVal = 0;

    //反序的中序遍历
    public TreeNode convertBST(TreeNode root) {
        if (root == null)   return root;
        TreeNode newRoot = new TreeNode();

        newRoot.right = convertBST(root.right); //右子树走到底

        curVal += root.val;//累加
        newRoot.val = curVal; //赋值

        newRoot.left = convertBST(root.left);
        return newRoot;
    }
}
